<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{padding: 0;margin: 0;}

        .wrap{
            width: 400px;
            height: 400px;
            background-color: gray;
            margin: 50px;
            overflow: hidden;
            position: relative;

        }
        .sub{
            width: 300px;
            height: 300px;
            background-color: pink;
            margin: 50px;
            overflow: hidden;
            position: relative;
        }
        .box{
            width: 200px;
            height: 200px;
            background-color: aquamarine;
            margin: 50px;

           /*  position: absolute;
            left: 50px;
            top: 50px; */

        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="sub">
            <div class="box"></div>
        </div>
    </div>
    
</body>
<script>
    var box = document.querySelector(".box");

    // 获取元素(内容区域)相对于body左边和顶部的间距 (margin + 定位)

    // 手搓版 => 自己算 => 麻烦
    // console.log(window.getComputedStyle(box).marginLeft);
    // console.log(window.getComputedStyle(box).left);
    // console.log(parseInt(window.getComputedStyle(box).marginLeft) + parseInt(window.getComputedStyle(box).left));


    console.dir(box);


    // offsetLeft offsetTop  获取元素相对于参照物父元素的偏移(左偏移 上偏移 => margin 和 定位)

    // 可以查找当前元素相对于父代元素中的某一个的偏移

    // 如何确定参照物父元素?
    // 自当前元素的父元素开始查找各种定位属性(relative absolute fixed sticky),如果有,该父元素就当前元素的参照物父元素,否则向外跳一层继续查找,依次类推,全都找不到,参数物父元素默认就是body

    console.log(box.offsetParent,box.offsetLeft, box.offsetTop);



</script>
</html>